<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 1. 正则的捕获方法
        + 语法: 正则.exec(字符串)
        + 意义: 从原始字符串中捕获出符合正则要求的字符串片段
        + 返回值:
          => 当原始字符串内没有符合正则规则的字符串片段的时候, 返回值为 null
          => 当原始字符串内有符合正则规则的字符串片段的时候
            -> 返回值必然是一个数组: 数组内的 [0] 是捕获出来的字符串片段
            -> 没有 (), 没有标识符 g
              + 只能捕获出第一组匹配的字符串片段
              + 不管捕获多少回, 都是从字符串的 [0] 位置开始检索
            -> 有 ()
              + 会在返回值数组的 [1] 开始依次是每一个 () 内的单独内容
            -> 有 g
              + g 叫做全局标识符
              + 第二次捕获会从第一次捕获的结束位置开始进行检索
              + 直到找不到内容, 返回 null
              + 再下一次捕获的时候, 会从字符串 [0] 开始检索
 */


//  var reg = /\d{2}/;  //没有 () 没有 g
//  var strs= 'asdfd12asfd34saf56asdfsa78dfs90adf';

//  var data = reg.exec(strs);
//  console.log(data);
//  console.log(data[0]);
//  console.log(data[0]);
//  console.log(data[0]);
//  console.log(data[0]);
//  console.log(data[0]);


// var reg = /(google|baidu)@([a-zA-Z0-9]+)\.([a-z]{2,6})/;  // 有()
//  var strs= 'google@163.com';

//  var data = reg.exec(strs);
//  console.log(data);
//  console.log(data[0]);
//  console.log(data[1]);
//  console.log(data[2]);
//  console.log(data[3]);
//  console.log(data[4]);


var reg = /\d{2}/g;  //没有 () 没有 g
var strs= 'asdfd12asfd34saf56asdfsa78dfs90adf';

// console.log(reg.exec(strs)); //第一次从下标0的位置 往后 
// console.log(reg.exec(strs)); //第一次从上一次结束位置 往后 
// console.log(reg.exec(strs)); //从上一次结束位置 往后 
// console.log(reg.exec(strs)); //从上一次结束位置 往后 
// console.log(reg.exec(strs)); //从上一次结束位置 往后 
// console.log(reg.exec(strs)); //null

// 上面始终是个数组   想要的数据存在下标0
var arr = []; //
var res = reg.exec(strs)  //捕获
while(res !== null){
    arr.push(res[0]) // 如果有 就把 数组第0个元素放到新的数组中
    res = reg.exec(strs) // 从上一次结束的位置再往后重新去捕获
}

console.log(arr)







    </script>
</body>
</html>